home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / lib / mathlib / libblas / src_original / drotg.f < prev    next >
Encoding:
Text File  |  1994-08-02  |  910 b   |  39 lines

  1.       SUBROUTINE DROTG( DA, DB, C, S )
  2. *
  3. *     construct givens plane rotation.
  4. *     jack dongarra, linpack, 3/11/78.
  5. *                    modified 9/27/86.
  6. *
  7. *     .. Scalar Arguments ..
  8.       DOUBLE PRECISION  C, DA, DB, S
  9. *     ..
  10. *     .. Local Scalars ..
  11.       DOUBLE PRECISION  R, ROE, SCALE, Z
  12. *     ..
  13. *     .. Intrinsic Functions ..
  14.       INTRINSIC         DABS, DSIGN, DSQRT
  15. *     ..
  16. *     .. Executable Statements ..
  17. *
  18.       ROE = DB
  19.       IF( DABS( DA ).GT.DABS( DB ) )
  20.      $   ROE = DA
  21.       SCALE = DABS( DA ) + DABS( DB )
  22.       IF( SCALE.NE.0.0D0 )
  23.      $   GO TO 10
  24.       C = 1.0D0
  25.       S = 0.0D0
  26.       R = 0.0D0
  27.       GO TO 20
  28.    10 R = SCALE*DSQRT( ( DA / SCALE )**2+( DB / SCALE )**2 )
  29.       R = DSIGN( 1.0D0, ROE )*R
  30.       C = DA / R
  31.       S = DB / R
  32.    20 Z = S
  33.       IF( DABS( C ).GT.0.0D0 .AND. DABS( C ).LE.S )
  34.      $   Z = 1.0D0 / C
  35.       DA = R
  36.       DB = Z
  37.       RETURN
  38.       END
  39.